#ifndef TOOLS_H
#define TOOLS_H

#include <stdlib.h>
#include <string>
#include <stdio.h>

#include <QDesktopWidget>
#include <QObject>
#include <QFile>
#include <QTextStream>
#include <QTextCodec>
#include <QMessageBox>
#include <QAbstractButton>
#include <QCoreApplication>
#include <QFileDialog>
#include <QTime>
#include <QProcess>
#include <QDir>
#include <QApplication>
#include <QStyleFactory>
#include <QInputDialog>
#include <QHostAddress>
#include <QNetworkInterface>
#include <QHostInfo>
#include <QStyle>
#include <QDateTime>
#include <QDebug>
#include <QStyleFactory>
#include <QSettings>

#include <QPainter>
#include <QBitmap>
#include <QPixmap>

#include "tools.h"
#include "command.h"

class Tools : public QObject {

public:
    //设置为开机启动
    static void AutoRunWithSystem(bool IsAutoRun, QString AppName);

    //设置编码为UTF8
    static void SetUTF8Code();

    //窗体居中，并且只有关闭按钮，不能调整大小
    static void FormOnlyCloseInCenter(QWidget *frm);

    //窗体居中显示
    static void FormInCenter(QWidget *frm);

    //窗体没有最大化按钮
    static void FormNoMaxButton(QWidget *frm);

    //窗体只有关闭按钮
    static void FormOnlyCloseButton(QWidget *frm);

    //窗体不能改变大小
    static void FormNotResize(QWidget *frm);

    // 设置样式
    static void setStyle(const QString &style);

    //延时
    static void Sleep(int sec);

    //判断是否是IP地址
    static bool IsIP(QString IP);

    // 获取本机ip地址
    static QString GetIP();

    // 获取文件的大小
    static QString GetFileSize(const QString &name);

    //获取选择的文件
    static QString GetFileName(QString filter);

    //获取选择的文件集合
    static QStringList GetFileNames(QString filter);

    //获取选择的目录
    static QString GetFolderName();

    //获取文件名，含拓展名
    static QString GetFileNameWithExtension(QString strFilePath);

    //获取选择文件夹中的文件
    static QStringList GetFolderFileNames(QStringList filter);

    //文件夹是否存在
    static bool FolderIsExist(QString strFolder);

    //文件是否存在
    static bool FileIsExist(QString strFile);

    // 删除目录下的所有文件，包括子目录
    static void CleanDirPath(QString strPath);

    // 复制文件
    static bool CopyFile(QString sourceFile, QString targetFile);

    // 转换html
    static void stringToHtmlFilter(QString &str);

    // string 转换成html
    static void stringToHtml(QString &str,QColor crl);

    // 添加图片
    static void imgPathToHtml(QString &path);

    // 添加文本
    static void stringToText(QString &str);


    static QPixmap PixmapToRound(const QPixmap &src, int radius);

    // 灰度
    static QPixmap ChangeGrayPixmap(const QImage &image);

    // 文件大小转换
    static QString CalcSize(qint64 bytes);

    // 计算下载速率
    static QString CalcSpeed(double speed);
};

#endif // TOOLS_H

